package com.peanut.boot.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.PathMatchConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.util.UrlPathHelper;

/**
 * @className: com.peanut.boot.config-> WebConfig
 * @description: web配置类，
 * @author: chenhs
 * @createDate: 2021-09-25 21:40
 * @version: 1.0
 */
@Configuration(proxyBeanMethods = false)
public class WebConfig implements WebMvcConfigurer {
	@Bean
	public WebMvcConfigurer webMVCConfigurer() {
		return new WebMvcConfigurer() {
			//开启矩阵参数
			@Override
			public void configurePathMatch(PathMatchConfigurer configurer) {
				//UrlPathHelper 路径帮助器
				UrlPathHelper urlPathHelper = new UrlPathHelper();
				//不移除请求路径中:号后面的内容。
				urlPathHelper.setRemoveSemicolonContent(false);
				configurer.setUrlPathHelper(urlPathHelper);
			}
		};
	}
	
	//配置拦截器
	@Override
	public void addInterceptors(InterceptorRegistry registry) {
		registry.addInterceptor(new loginInterceptor())
				//拦截路径。
				.addPathPatterns("/**")
				/**
				 * 	放行路径。
				 * 	放行登录方法 "/","/login"。
				 * 	放行静态资源。 "/css/**","/images/**","/js/**"
				 * 	注意！！！  这些静态资源都在 static 文件夹下 这里为什么没有写 /static/**????
				 * 		static 是默认的静态资源存放地点，请求路径中没有  /static 这一级。
				 * 		为什么没有？？
				 *
				 *
				 */
			
				.excludePathPatterns("/","/login","/css/**","/images/**","/js/**");
				
		
	}
}
